Field of the Invention
The present invention relates in general to computers, and more particularly to a method, system, and computer program product for safeguarding nonvolatile storage (NVS) data by a processor in communication with a memory device.
Description of the Related Art
Storage devices such as disks are commonplace in today's society. Devices such as controllers control access to the storage devices in response to read and write requests. The storage controllers also mirror data to different storage devices and spread data amongst different storage devices for redundancy and backup purposes. Storage controllers may store data in accordance with one of several redundant array of independent disk (RAID) security levels. Generally, the higher the RAID level the greater the redundancy of the data storage. Pooled storage devices may be used to increase storage capacity and provide recovery and backup services.
Storage servers, such as an IBM® Enterprise Storage Server® (ESS), are also becoming commonplace. One IBM® ESS storage server includes two clusters of processors and associated hardware. Typically, there are multiple processors in each cluster. Each of the storage controllers controls multiple storage devices grouped in RAID arrays. In one environment, clients with Fiber Channel Host Bus Adapters (“HBAs”) are coupled via a Fiber Channel to a switch. The switch is also coupled to the Storage Server with Fiber Channel HBAs. There may be multiple storage servers per client. Each client is assigned or allocated storage “volumes” which are mapped to physical locations on storage devices that are grouped in RAID arrays. Consequently, clients make data access requests (reads and writes) to the storage server, for data within their allocated volumes, and the storage server accesses the mapped locations in cache storage to satisfy the requests or from disk if the data does not reside in cache storage.
One IBM® ESS comprises a storage controller with two clusters and four processors per cluster. Each cluster has its own cache (semiconductor) memory shared by all processors in the cluster. Each cluster also has battery backed up nonvolatile storage (“NVS”) that is shared by all of the processors in the cluster. In addition, each cluster has its own cache storage. The cache memory is used for rapid access to data inpaged from external storage to service read data access requests from memory and to provide buffering of modified data. All write requests are written to the cache on the cluster managing a given volume and are mirrored in the nonvolatile memory on the other cluster.
Storage systems such as ESS send commit messages to connected data hosts following the completion of the transfer of write data to both the cache and NVS, and before the write data is written to disk. After the commit message is received, hosts no longer need keep a copy of this write data. In some systems, in the event of a power loss, NVS does not function to retain data, but rather achieves the non-volatility by destaging the data onto a hard disk with the help of a battery backup component.